آشنائی با ASP.NET 2.0

وب يکی از مهمترين و در عين حال جوان ترين سرويس های اينترنت است که در مدت زمانی کوتاه توانسته است در کانون توجه تمامی استفاده کنندگان اينترنت قرار بگيرد و منشاء تحولات عمده ای در حيات بشريت باشد. در گذشته از وب صرفا" به منظور عرضه اطلاعات استفاده می گرديد و کاربران از آن به عنوان يک کنابخانه الکترونيکی بزرگ و در جهت يافتن اطلاعات مورد نياز خود استفاده می کردند. وضعيت فعلی وب نسبت به گذشته دستخوش تحولات فراوانی شده است و هم اينک از آن به عنوان بستر ارتباطات ، مبادله اطلاعات ، عمليات تراکنشی نظير فعاليت های تجاری ، اجتماعی ، سياسی ، آموزشی و فرهنگی استفاده می گردد .
نرم افزار و دنيای برنامه نويسی يکی ازعرصه هائی است که بدون شک بيشترين تاثير را از اينترنت پذيرا بوده است ( پرداختن به مقوله تاثير اينترنت بر دنيای برنامه نويسی و يا تاثير نرم افزار بر اينترنت خارج از حوصله اين مقاله است ). شرکت های عظيم نرم افزاری با لحاط نمودن جايگاه برجسته اينترنت ، اقدام به ارائه تکنولوژی ها و معماری های متفاوتی در جهت طراحی و پياده سازی برنامه های کامپيوتری با بهره گيری از زيرساخت اينترنت نموده اند .

ASP.NET : گزينه ای برای طراحی و پياده سازی برنامه ها و سرويس های وب

به منظور پاسخ به خيل عظيم نيازهای موجود با توجه به تسهيلات ارائه شده توسط اينترنت ، نسل جديدی از برنامه های کامپيوتری با نام "برنامه های وب " مطرح و در اين رابطه تاکنون تکنولوژی های متفاوتی توسط شرکت های عظيم نرم افزاری ارائه شده است . ASP.NET يکی از تکنولوژی های موجود در اين زمينه است . در واقع ، ASP.NET فريمورک برنامه نويسی شرکت مايکروسافت برای طراحی و پياده سازی برنامه ها و سرويس های وب است که خود بخشی از پلت فرم دات نت محسوب می گردد . ASP.NET با دارا بودن مجموعه ای گسترده از اشياء که دارای اينترفيس های ساده برنامه نويسی می باشند و بهره گيری از يک محيط ترجمه شده شی گراء ، امکان پردازش های ساده تا پيچيده را با حداقل کد ممکن فراهم می نمايد.

چرا ASP.NET ؟

زمانی که شرکت مايکروسافت نسخه اوليه فريمورک دات نت را در جولای سال 2000 برای اولين مرتبه به نمايش گذاشت ، برای اکثر طراحان و پياده کنندگان برنامه های وب مشخص گرديد که می بايست در انتظار تحولات چشمگيری در اين عرصه بود .ASP نسخه شماره سه ( تکنولوژی قبلی شرکت مايکروسافت برای پياده سازی برنامه های وب ) ، امکانات گسترده و انعطاف لازم به منظور ايجاد سايت های پويا را در اختيار علاقه مندان قرار می داد. تاکنون صدها کتاب و هزاران مقاله با موضوع ASP نوشته شده است . ماحصل تمامی تلاش های انجام شده در اين رابطه، تسهيل در امر طراحی و پياده سازی وب سايت های پويا و برنامه های وب بود . چيزی که ASP نداشت ، يک فريمورک برنامه نويسی بود. هر چيزی که در ASP انجام می شد با رويکرد کدنويسی بود و برنامه نويسان برای انجام هر کاری ملزم به نوشتن کدهای مورد نياز بودند.
ASP.NET با هدف غلبه بر محدوديت فوق طراحی شده است . ASP.NET يک فريمورک برنامه نويسی است که برروی CLR ايجاد و می توان از آن به منظور ايجاد برنامه های قدرتمند وب استفاده نمود .يکی از اهداف اساسی طراحی ASP.NET ، برنامه نويسی ساده تر و با سرعت بيشتر از طريق کاهش حجم کدهای مورد نيازی است که برنامه نويسان ملزم به نوشتن آنان می باشند.برنامه نويسی declarative ، مجموعه ای گسترده از کنترل های سرويس دهنده به همراه رويدادهای مربوطه ، يک کتابخانه کلاس بزرگ و ابزارهای پياده سازی کاملا" حرفه ای نظير ويژوال استوديو دات نت ، از جمله ويژگی های شاخص ASP.NET محسوب می گردد( يک جهش کاملا" ملموس نسبت به وضعيت گذشته ). کنترل های سرويس دهنده ، معماری postback ، حمايت از viewstate به اضافه استفاده از کد ترجمه شده و مدل برنامه نويسی مبتنی بر رويداد ، جملگی از مهمترين دستاوردهای ASP.NET محسوب می گردد که نويد ايجاد و اشکال زدائی سريع برنامه های وب را در اختيار پياده کنندگان قرار می دهد .
محيط برنامه نويسی ASP.NET بيش از بيست و پنج زبان نظير VB.NET ، سی شارپ و Jscript.NET را حمايت می نمايد. به عنوان يک محيط شی گراء ، فريمورک دات نت بيش از 4500 کلاس را ارائه می نمايد که از آنان به منظور انجام عمليات متفاوتی در ارتباط با اسناد XML ، دستيابی به داده ، توليد تصاوير ، مونيتورينگ ، ثبت تراکنش ها و ساير عمليات ديگر استفاده می گردد . کلاس ها مجموعه ای گسترده از اشياء ، خصلت ها و متدها را ارائه می نمايند که می توان از آنان به منظور پياده سازی برنامه های وب قدرتمند استفاده بعمل آورد.
عليرغم اين که کدها ترجمه می گردند ، ASP.NET به صورت اتوماتيک هر گونه تغيير در کدها را تشخيص و به صورت پويا اقدام به ترجمه فايل های مورد نياز نموده و آنان را برای استفاده مجدد به منظور پاسخگوئی به درخواست هائی آتی ، ذخيره می نمايد . ترجمه پويا ، اين اطمينان را ايجاد می نمايد که برنامه بهنگام بوده و کد ترجمه شده با سرعت مناسبی اجراء می گردد. در زمان درخواست يک صفحه و ترحمه آن برای اولين مرتبه ، يک تاخير کوتاه را شاهد خواهيم بود . پاسخ به درخواست های آتی از طريق نتايج ترجمه شده و يا نسخه های Cache شده صفحات انجام خواهد شد و نتايج با سرعت بمراتب بيشتری برای سرويس گيرندگان ارسال می گردد .
با توجه به ويژگی های منحصربفرد ASP.NET ، تاکنون از آن به منظور پياده سازی برنامه های وب در سايت های معتبر متعددی استفاده شده است :
• شرکت Dell
• Merrill Lynch
• بازار بورس لندن
• خطوط هواپيمائی JetBlue
• NASDAQ
• USA Today
• Home Shopping Network
• Weight Watchers
• Bank One
• Century 21
• و هزاران سايت ديگر متعلق به شرکت ها و موسسات خصوصی و عمومی

چرا ASP.NET 2.0 ؟

هم اينک نسخه شماره دو ASP.NET در راه است . شايد اين سوال برای شما مطرح شده باشد که ASP.NET 1.x دارای چه محدوديت هائی است که ضرورت ايجاد نسخه شماره دو آن احساس شده است ؟ در پاسخ می بايست به اين نکته اشاره نمود که طراحی و پياده سازی هر نرم افزار مستلزم استفاده از منابع متفاوت، انعطاف لازم و صرف زمان مناسب است . بهينه سازی هر يک از شاخص های فوق ، مهمترين دليل ارتقاء به رويکردهای مدرن برنامه نويسی است . در ASP.NET 2.0 انجام هر کاری با سهولت بمراتب بيشتری نسبت به گذشته انجام می شود.
صفحات master ، ويژگی themes و skins ، ارائه امکانات مناسب در جهت حمايت از دستگاه های سرويس گيرنده متفاوت ، ارائه چهل و پنج کنترل سرويس دهنده جديد شامل کنترل های سرويس دهنده پيشرفته منبع داده ، کنترل های navigation ، کنترل های login ، کنترل های web part ، کنترل های لازم به منظور ايجاد منو و treeview ، رويکرد جديد به data grid ، ارائه امکانات و ابزارهای لازم در جهت مديريت بهينه برنامه ها ، حمايت از پردازنده های 64 بيتی ، کاهش حجم کد نوشته شده به ميزان هقتاد درصد ، نمونه هائی از امکانات و پتانسيل های جديد ASP.NET 2.0 می باشد.
با استفاده از ASP.NET 2.0 پياده کنندگان برنامه های وب می توانند کارهای پيچيده متعددی را بدون نياز به نوشتن کد انجام دهند .

ارائه امکانات لازم در جهت افزايش بهره وری و کارائی پياده کنندگان

با توجه به مدل برنامه نويسی declarative، پياده کنندگان برنامه های وب برای نوشتن برنامه های مورد نياز خود ملزم به نوشتن صدها و يا هزاران خط کد نخواهند بود . حجم کد توليد شده در ASP.NET 2.0 نسبت به نسخه قبلی کاهشی معادل 70 درصد را بدنبال خواهد داشت . برای انجام عمليات متداول در يک برنامه کامپيوتری ، می توان از سرويس های آماده شده متعددی استفاده نمود .در جهت تحقق رويکرد استراتژيک فوق ، کنترل های سرويس دهنده متعددی در ASP.NET 1.x ايجاد و با توجه به ضرورت های موجود و دريافت نقطه نظرات پياده کنندگان به تعداد آنان در ASP.NET 2.0 افزوده شده است .

کنترل های سرويس دهنده جديد

ASP.NET 2.0 با معرفی چهل و پنج کنترل سرويس دهنده جديد ، امکانات مناسبی را به منظور انجام عمليات متفاوتی نظير : دستيابی به داده ، login ايمن ، Wizard navigation ، توليد تصاوير ، منو ، treeview و ايجاد پورتال در اختيار پياده کنندگان قرار می دهد . تعداد زيادی از کنترل های فوق از مزايای سرويس های کاربردی هسته در ASP.NET در مواردی نظير دستيابی به داده ، عضويت و يا role استفاده می نمايند . برخی از کنترل های جديد اضافه شده در ASP.NET 2.0 عبارتند از :
• کنترل های داده : دستيابی به داده در ASP.NET 2.0 می تواند به صورت کاملا" تعريفی و بدون نياز به کدی خاص با استفاده از کنترل های جديد منبع داده و يا نسبت دهی داده انجام شود. در اين رابطه کنترل های منبع داده جديدی ارائه شده است که امکانات متفاوتی را نظير دستيابی به بانک های اطلاعاتی SQL ، اشياء business و XML در اختيار پياده کنندگان قرار می دهد. همچنين در اين رابطه کنترل های نسبت دهی داده جديدی برای واکنش مناسب درخصوص تامين داده مورد نياز لايه رابط کاربر نظير grids ,details و فرم های نسبت دهی داده ارائه شده است .
• کنترل های Navigation : کنترل های فوق ، امکانات متداول و مورد نياز در سطح لايه رابط کاربر به منظور حرکت بين صفحات يک سايت را در اختيار پياده کنندگان قرار می دهند . کنترل های treeview ، منو و breadcrumbs ، نمونه هائی در اين زمينه می باشد . کنترل های فوق از سرويس site navigation در ASP.NET 2.0 به منظور بازيابی ساختار سفارشی تعريف شده برای سايت ، استفاده می نمايند.
• کنترل های Login : کنترل های فوق ، مسئوليت ارائه امکانات لازم به منظور تائيد و بررسی مجوزها در سطح لايه رابط کاربر برای يک برنامه وب را برعهده دارند . فرم های login ، ايجاد فرم های کاربر و بازيابی رمز عبور نمونه هائی در اين زمينه می باشد. کنترل های فوق از سرويس های آماده membership و role در ASP.NET 2.0 به منظور ارتباط با کاربر و اطلاعات role تعريف شده در سايت ، استفاده می نمايند .
• کنترل های Web part : کنترل های فوق، امکان افزودن محتويات اختصاصی و کاملا" سفارشی و Layout را در اختيار پياده کنندگان قرار می دهند .ويرايش محتوای مورد نظر و layout بطور مستقيم و از طريق صفحات برنامه، از جمله امکانات ارائه شده توسط کنترل های web part می باشد. کنترل های فوق در ارتباط با سرويس های personalization در ASP.NET 2.0 می باشند .

Master page

با استفاده از ويژگی فوق می توان ساختار و عناصر اينترفيس مورد نياز يک سايت را تعريف نمود. تعريف هدر و يا فوتر برای صفحات و يا ميله مسيريابی و حرکت ، نمونه هائی در اين زمينه است که با تعريف آنان در يک مکان واحد موسوم به Master page ، امکان استفاده و به اشتراک گذاشتن آنان بين صفحات متفاوت موجود بر روی يک سايت فراهم می گردد . با استفاده از ويژگی فوق وضعيت مديريت و نگهداری يک سايت بهبود يافته و از تکرار کدهای غيرضروری به منظور اشتراک ساختار و يا رفتار سايت ، پيشگيری بعمل می آيد .

Themes و Skins

با استفاده از ويژگی فوق می توان شکل ظاهری يک سايت را متناسب با خواسته کاربر کاملا" سفارشی نمود . پس از تعريف اطلاعات مربوطه به هر Style ، می بايست آنان را در مکان هائی موسوم به "theme" ذخيره تا زمينه استفاده از آنان در ساير صفحات و يا کنترل های موجود بر روی يک صفحه فراهم گردد . ويژگی فوق همانند master page ، باعث بهبود وضعيت مديريت و نگهداری سايت و پيشگيری از نوشتن کدهای تکراری برای دستيابی به styles مشترک می گردد .

حمايت از دستگاه های سرويس گيرنده متفاوت نظير موبايل

با توجه به گسترش و فراگير شدن دستگاه های موبايل و ساير دستگاه های سرويس گيرنده ، ضرورت ايجاد برنامه های وب با قابليت استفاده توسط دستگاه های سرويس گيرنده متفاوت بيش از گذشته احساس می شود . در اين رابطه می توان از برخی کنترل های سرويس دهنده استفاده نمود که قادر به تفسير و ارسال اطلاعات برای نمايشگرهای کوچک باشند . در اين رابطه دو مسئله اصلی می تواند وجود داشته باشد : اول اينکه ، داشتن يک مجموعه مجزاء از کنترل های سرويس دهنده مختص دستگاه های موبايل نه تنها سردرگمی پياده کنندگان را بدنبال خواهد داشت بلکه هزينه پياده سازی يک پروژه را نيز بطرز قابل محسوسی افزايش می دهد . دوم اينکه ، به منظور حمايت از دستگاه های جديد می بايست عمليات پياده سازی و نگهداری اضافه ای انجام شود که اين موضوع نيز می تواند اثرات جانبی خاص خود را بدنبال داشته باشد .
در ASP.NET 2.0 ، با استفاده از يک مجموعه کنترل و تبعيت از يک معماری بسط پذير ، امکان حمايت از دستگاه های متفاوت در اختيار پياده کنندگان قرار می گيرد . تمامی کنترل های استاندارد ارائه شده در ASP.NET 2.0 دارای يک آداپتور رابط کاربر قدرتمند قابل توسعه می باشند که با استفاده از آن می توان خروجی مورد نظر را برای مرورگرها و ساير دستگاه های سرويس گيرنده کاملا" سفارشی نمود . تمامی کنترل های از قبل تعبيه شده ASP.NET در ASP.NET 2.0 از موبايل حمايـت می نمايند .بدين ترتيب پياده کنندگان می توانند به صورت اتوماتيک خروجی برنامه های وب را برای بيش از سيصد دستگاه منحصربفرد که از استانداردهای نشانه گذاری متفاوتی حمايت می نمايند ( نظير WAP/WML , XHTML Mobile , cHTML و ... ) ، ارسال نمايند . کنترل های استاندارد ASP.NET به صورت اتوماتيک اقدام به ارسال کدهای نشانه گذاری مناسب برای يک دستگاه سرويس گيرنده خاص نموده و پياده کنندگان می توانند بسادگی برنامه هائی را پياده سازی نمايند که از سرويس گيرندگان جديد حمايت می نمايد .

ارائه امکانات و ابزارهای لازم در جهت مديريت برنامه ها

مديريت برنامه های وب نوشته شده با استفاده از ASP.NET 1.x مستلزم ويرايش دستی فايل های پيکربندی XML است. رويکرد فوق روشی مناسب و بهينه به منظور مديريت برنامه ها از منظر مديران برنامه ها محسوب نمی گردد . در ASP.NET 2.0 به منظور تسهيل در امر مديريت و نگهداری برنامه های وب و وب سايت های پويا از ابزارهای مديريتی مبتنی بر وب با رابط کاربر گرافيکی استفاده می گردد که با سرويس دهنده وب IIS تلفيق و خدمات مورد نظر را در اختيار مديران و پياده کنندگان قرار خواهند داد. بکارگيری و نگهداری برنامه های وب در محيط عملياتی يکی ازعناصر کليدی در چرخه حيات يک برنامه کامپيوتری است و می بايست نسبت به آن حساسيت خاصی را داشت. تمامی امکانات يک فريمورک برنامه نويسی نمی بايست محدود به ارائه تسهيلات لازم به منظور پياده سازی باشد و در اين رابطه می بايست امکانات لازم در حهت بکارگيری و نگهداری برنامه ها نيز بدرستی ارائه گردد . بدين منظور در ASP.NET 2.0 امکانات متعددی به منظور تسهيل در امر بکارگيری ، نگهداری و مديريت برنامه های وب ارائه شده است :
• پيکربندی API : در ASP.NET 2.0 با توجه به ارائه امکانات و اينترفيس های لازم برنامه نويسی ، پياده کنندگان می توانند با استفاده از کدهای مورد نظر خود اقدام به ايجاد برنامه ها و يا اسکريپت هائی نمايند که قادر به ايجاد ، خواندن و بهنگام سازی فايل های Web.config و machine.config باشد .
• ابزار مديريت ASP.NET : در ASP.NET 2.0 با ارائه يک ابزار جديد مديريتی که با برنامه مديريتی سرويس دهنده وب IIS تلفيق خواهد شد به پياده کنندگان و يا مديران برنامه های وب امکان مشاهده و يا اعمال تغييرات مورد نياز در ارتباط با فايل های پيکربندی XML داده می شود .
• ابزار ترجمه اوليه : در ASP.NET 2.0 با ارائه يک ابزار بکارگيری جديد به پياده کنندگان و مديران برنامه های وب اجازه داده می شود يک برنامه را قبل از بکارگيری، ترجمه اوليه نمايند. رويکرد فوق باعث می شود که هر گونه نياز به ترجمه در هر محلی از سايت به صورت اتوماتيک شناسائی و واکنش های مناسب نسبت به آن داده شود .
• ابزارهای مانتيورينگ و رديابی : در ASP.NET 2.0 با ارائه امکانات و ابزارهای لازم به منظور مانيتورينگ عملکرد برنامه های وب، مديران و پياده کنندگان برنامه های وب می توانند به صورت اتوماتيک از نحوه عملکرد يک برنامه بر روی سرويس دهنده آگاه و در صورت نياز واکنش های مناسب را در جهت رفع اشکالات موجود انجام دهند. با استفاده از امکانات ارائه شده در ارتباط با رديابی ، اشکال زدائی برنامه های وب با سرعت و دقت بيشتری انجام خواهد شد.

قابليت توسعه و افزايش کارائی

يکی از اهداف مهم طراحی ASP.NET ، ارائه يک محيط شی گراء ترجمه شده با هدف پاسخگوئی سريع به درخواست های سرويس گيرندگان است . افزايش کارائی و قابليت توسعه برنامه های وب يکی از مهمترين ويژگی های ASP.NET 2.0 نسبت به نسخه های قبلی است :
• حمايت از 64 بيت : ASP.NET 2.0 قادر به حمايت از 64 بيت است . اين بدان معنی است که ASP.NET 2.0 می تواند از مزيت دستيابی به تمامی فضای حافظه در پردازنده های 64 بيتی استفاده نمايد. پياده کنندگان می توانند بسادگی برنامه های ASP.NET موجود 32 بيتی را بر روی يک سرويس دهنده که بر روی آن ASP.NET 2.0 نصب شده است ، کپی نموده و کمپايلر JIT به صورت اتوماتيک فرآيند ترجمه را انجام و برنامه های موجود را به عنوان برنامه های 64 بيتی اجراء می نمايد. در چنين مواردی نيازی به تغيير در کدهای نوشته شده نخواهد بود .
• بهبود وضعيت Caching : نسخه شماره دو ASP.NET از ويژگی cache invalidation بانک اطلاعاتی به صورت اتوماتيک استفاده می نمايد . ويژگی فوق اين امکان را در اختيار پياده کنندگان قرار می هد که اقدام به خارج نمودن اطلاعات مربوط به صفحات مبتنی بر داده های بانک اطلاعاتی و يا بخش هائی از محتوای يک صفحه از cache نموده و از ASP.NET درخواست گردد که اينگونه اطلاعات cache شده را غيرمعتبر نموده و محتوای cache را پس از تشخيص تغيير اطلاعات موجود در بانک اطلاعاتی ، بهنگام نمايد .
ASP.NET 2.0 امکانات متعددی را به منظور پياده سازی برنامه های وب در اختيار پياده کننده گان قرار می دهد . با پيش بينی امکانات و ابزارهای لازم بکارگيری ، نگهداری و پشتيبانی برنامه های وب وضعيت بمراتب مناسب تری را نسبت به گذشته پيدا می نمايد .